To keep pace with rapidly changing business models, business enterprises require a flexible computing environment that allow changes to be implemented quickly and cost-effectively. In recent years, the “services-oriented architecture” (SOA) technology based on Web services has gained popular appeal. SOA technology allows loosely coupled business applications to be assembled from a set of internal and external services and distributed over a connected information technology (IT) infrastructure. In order to be flexible, ubiquitous, and cost-effective to maintain, SOAs are largely open and standards compliant.
One example of an SOA is the Enterprise Services Architecture (ESA) offered by SAP AG. SAP's ESA is an open architecture that builds on the benefits of Web services and is enabled by the SAP NetWeaver platform. Like many SOAs, ESA separates the interface and process definition from the underlying application by modeling the terms of a business relationship using “business objects” defined using one or more standard data definition languages, such as the Web Services Definition Language (WSDL), XML schema (xsd), or specialized XML languages, such as cXML, eBXML, or the Core Components Technical Specification (CCTS) by the UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business), WSDL is described in the W3C Note dated 15 Mar. 2001, available at www.w3.org. SAP defines a proprietary extension of the WSDL standard, called WSDL++. A business object may be, for example, an invoice, expense report, purchase order, or other business form requiring data. Using WSDL++, for example, business objects can be described using structured information to simplify the sharing of the business object between business applications.
Most current standards, such as XML, provide limited facilities for datatypes and each defined datatype expects the data in a specific format. Data that is entered into a business object in an unacceptable format can cause problems for an SOA. The problem of non-standard data arises even more frequently today as enterprises merge and become more global. For example, an enterprise may result from the merging of a number of formerly separate entities, each used to entering data into its applications in its own unique format. Enterprises that span different continents may run into the difficulty of having entities in different countries enter data in different manners. For example, Europeans are typically used to entering the date by specifying the day, then the month, while Americans are more used to entering the month, then the day.
These differences in data entry must be addressed at some level or they risk causing error. In XML, for example, an XML schema definition (xsd) consists of components such as type definitions and element declarations that can be used to assess the validity of well-formed element and attribute information items. When data is received into a business object defined in xsd, a program storing data defined by a type definition checks to see if the data falls within the requirements set for the data type. If the data does not exactly meet the restrictions of the data type, the data is rejected and an error occurs.
Non-standard data can be and has been addressed by using programming languages, such as Java and Perl, at the application level. Programmers can, for example, add code to the various applications using the business object to transform data that is stored that is within the restrictions of the data type, but outside the requirements of the application. Perl, for example, has directives that perform pattern replacement and transliteration. In the Java programming language, there can be transformation in class definitions. By allowing transformations only in a high-level programming language such as Java or Perl, however, application programmers must write specialized code for each of the various applications. This prevents total portability of the business object.
By allowing transformation in data type definition statements, business objects can be created that are more readily usable by a wider variety of applications and environments without causing error or requiring special purpose coding of business applications.